package com.shell.customer.base.dao;

import com.shell.bee.persistence.mapper.BaseMapper;
import com.shell.customer.accreditation.vo.AuthenticatingCusVo;
import com.shell.customer.base.vo.CusRecVo;
import com.shell.customer.po.CusRec;
import java.util.List;
import org.apache.ibatis.annotations.Param;

public abstract interface CusRecDao extends BaseMapper<CusRec> {
	public abstract List<CusRecVo> selectCustomerList(CusRecVo paramCusRecVo);

	public abstract List<AuthenticatingCusVo> getAuthenticatingCus(@Param("grpIds") String[] paramArrayOfString1,
			@Param("cusStates") String[] paramArrayOfString2, @Param("cusType") String paramString1,
			@Param("cusName") String paramString2);

	public abstract List<AuthenticatingCusVo> getLastTrialCus(@Param("grpIds") String[] paramArrayOfString,
			@Param("cusState") String paramString1, @Param("cusType") String paramString2,
			@Param("cusName") String paramString3);

	public abstract int updateCustomerOptimistically(@Param("cus") CusRec paramCusRec,
			@Param("currentState") String paramString);

	public abstract List<CusRec> getUserCusList(@Param("searchStr") String paramString1,
			@Param("cusState") String paramString2, @Param("userId") String paramString3);

	public abstract List<CusRec> selectCustomerInviteList(CusRec paramCusRec);

	public abstract CusRec selectCustomerInviteById(@Param("cusId") String paramString);

	public abstract CusRec selectCustomerByNameTypeSrcId(@Param("cusName") String paramString1,
			@Param("cusType") String paramString2, @Param("srcId") String paramString3);

	public abstract List<CusRec> getCooperationAgencyList(@Param("cusType") String paramString1,
			@Param("searchStr") String paramString2);

	public abstract CusRec getCustomerByLoginName(@Param("loginNameOrPhone") String paramString);

	public abstract List<CusRec> getInviterList(@Param("inviterTypes") List<String> paramList,
			@Param("searchStr") String paramString1, @Param("cusState") String paramString2);

	public abstract CusRec getCustomerByInviteCode(@Param("inviteCode") String paramString);

	public abstract List<CusRec> selectFocalEnts(@Param("cusType") String paramString1,
			@Param("entId") String paramString2, @Param("cusState") String paramString3);

	public abstract List<CusRec> selectByGroupIdAndRelType(@Param("grpId") String paramString1,
			@Param("relType") String paramString2);

	public abstract List<CusRec> selectCusByGroupIdAndTagCode(@Param("states") String[] paramArrayOfString1,
			@Param("grpId") String paramString, @Param("tagCodes") String... paramVarArgs);

	public abstract List<CusRec> selectFocalEntsForGroup(@Param("cusState") String paramString1,
			@Param("cusType") String paramString2, @Param("focalId") String paramString3,
			@Param("tagCodes") String[] paramArrayOfString);

	public abstract List<CusRec> getPlatform(@Param("cusId") String paramString1,
			@Param("tagCode") String paramString2);
}
